let Log = require('./utils/Log');
const log = new Log();
/**
 * 依次打印日志、记录时间、输入结果
 */
 var Koa = require('koa');
 var app = new Koa();

/**
 * 打印请求路径的中间件
 */
app.use(async (ctx,next) =>{
  console.log(`请求方法: ${ctx.request.method} 请求路径: ${ctx.request.url}`)
  await next(); //---> 去执行处理时间异步函数
});

/**
 * 记录处理时间的中间件
 */
app.use(async (ctx,next) =>{
  let startTime = new Date().getTime();
  await next(); //---> 去执行返回body的异步函数
  let ms = new Date().getTime() - startTime;
  console.log(`请求处理时间: ${ms}`)
});

 /**
  *主页的中间件
  */
  app.use(async (ctx,next) => {
    if (ctx.request.path === '/') {
      ctx.body = '欢迎来主页!';
    }else{
      await next(); //调用下一个异步函数
    }
  });

  /**
   * 测试的中间件
   * @type {[type]}
   */
  app.use(async (ctx,next) => {
    if (ctx.request.path === '/test') {
      ctx.body = '欢迎来测试!';
    }else{
      await next(); //这里已经只调用链的末端
    }
  });

app.listen(3001);
